package com.ming.mallchat.common.websocket.domain.service;

import com.ming.mallchat.common.websocket.domain.vo.req.WSBaseReq;
import com.ming.mallchat.common.websocket.domain.vo.resp.WSBaseResp;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;

public interface WebSocketService {
    /**
     * webSocket连接保存 （登入态、游客）
     * @param ctx
     */
    void connect(Channel ctx);

    /**
     * 登入暂时保存
     * @param channel
     */
    void handleLoginReq(Channel channel);

    /**
     *  登入成功获取channel上线
     * @param code
     * @param id
     */
    void scanLoginSuccess(Integer code, Long id);

    /**
     * 等待用户授权
     * @param code
     */
    void waitAuthor(Integer code);

    /**
     * 用户刷新重新授权
     * @param channel
     * @param token
     */
    void author(Channel channel, String token);

    /**
     * 用户下线
     * @param ctx
     */
    void remove(ChannelHandlerContext ctx);

    /**
     * 通知所有用户，有人被拉黑
     * @param msg
     */
    void sendMsgToAll(WSBaseResp<?> msg);
}
